#ifndef D_ENTITY_H
#define D_ENTITY_H

#include <iostream>
#include <vector>
#include <modules\graphics\model.h>
#include <modules\graphics\transformable.h>

using namespace std;

namespace DelGE
{
	namespace Modules
	{
		namespace Graphics
		{
			class Entity : public Transformable
			{
			protected:
				bool bHidden;
				vector<Model*> vModels;

				Entity();
				virtual ~Entity();

				void DestroyModels();

			public:

				void Hide();
				void Show();
				bool IsHidden();

				virtual void AddModel(Model* pModel = NULL);
				virtual Model* GetModel(int iIndex);
				virtual int GetModelCount();

				virtual Model* GetRenderModel(int iModelIndex) = 0;
				virtual void Destroy();
			};
		}
	}
}

#endif